import threading
import time
from threading import Semaphore

def sen_url(sp:Semaphore):
    for i in range(20):
        sp.acquire() # 信号量-1
        # 同时启动大量线程 会对自己的服务器造成压力 对对方的服务器也造成压力
        t1 = threading.Thread(target=get_url,args=(i,sp))
        t1.start()


def get_url(url,sp:Semaphore):
    time.sleep(2)
    print(f"接收到url{url}")
    sp.release() # 释放信号量


if __name__ == '__main__':
    # 使用并发控制器 一次性最多有5个线程存在
    sp = Semaphore(5)
    t1 = threading.Thread(target=sen_url,args=(sp,))
    t1.start()

